/*
 * Zavod.java
 *
 * Created on 15. listopad 2006, 7:00
 *
 */

package cz.results.winter6.model;

import java.util.TreeMap;

public class Zavod {
    
    /** udava pocet fyzickych jizd, ktery ma kazdy startovni subjekt. dulezite pri jeho zakladani */
    private int pocetJizd;
    private Filtry filtry;
    private StartSubjektList sl;                 //list vsech startujicich subjektu   
    private Ciselniky ciselniky;
       
    private TreeMap<String,KategorieConfigList> startovniKategorieConfigMap;
    /** popisuje vsechny tagy, ktere se mohou vyskytnout v nacionalich */    
    private ConfigNacionale configNacionale;
    /** popisuje vsechny pouzivane priznaky */
    private ConfigPriznaky configPriznaky;
    
    public Zavod() {
        setFiltry(new Filtry());
        setCiselniky(new Ciselniky());
        setStartovniKategorieConfigMap(new TreeMap<String,KategorieConfigList>());
        setConfigNacionale(new ConfigNacionale());
        setConfigPriznaky(new ConfigPriznaky());
    }

    /** vrati kategorieConfigList dany parametrem nazevTypuKategorie */ 
    public KategorieConfigList getKategorieConfigList(String nazevTypuKategorie){
        return getStartovniKategorieConfigMap().get(nazevTypuKategorie);
    }
    
    /** vrati KategorieConfig dany parametry nazevTypuKategorie a indexKategorieConfig 
     @parametr nazevTypuKategorie urcuje typ startovni kategorie, je to ukazatel do TreeMapy, a jendoznacne urcuje
                                  prislusny KategorieConfigList
     @parametr indexKategorieConfig urcuje prislusny KategorieConfig v KategorieConfigListu */
    public KategorieConfig getKategorieConfig(String nazevTypuKategorie, int indexKategorieConfig){
        return getKategorieConfigList(nazevTypuKategorie).get(indexKategorieConfig);
    }
    
    /** vrati filtr dane kategorie 
     @param nazevTypuKategorie urcuje typ startovniKategorie je to ukazatel do TreeMapy, a jendoznacne urcuje
                                  prislusny KategorieConfigList
     @parametr indexKategorieConfig urcuje prislusny KategorieConfig v KategorieConfigListu */
    public Filtr getFiltr(String nazevTypuKategorie, int indexKategorieConfig){
        return getKategorieConfig(nazevTypuKategorie, indexKategorieConfig).getFiltr();
    }
    
    public Filtry getFiltry() {
        return filtry;
    }

    public void setFiltry(Filtry filtry) {
        this.filtry = filtry;
    }

    public StartSubjektList getSl() {
        return sl;
    }

    public void setSl(StartSubjektList sl) {
        this.sl = sl;
    }

    public Ciselniky getCiselniky() {
        return ciselniky;
    }

    public void setCiselniky(Ciselniky ciselniky) {
        this.ciselniky = ciselniky;
    }

   
    public TreeMap<String, KategorieConfigList> getStartovniKategorieConfigMap() {
        return startovniKategorieConfigMap;
    }

    public void setStartovniKategorieConfigMap(TreeMap<String, KategorieConfigList> startovniKategorieConfigMap) {
        this.startovniKategorieConfigMap = startovniKategorieConfigMap;
    }

    public ConfigNacionale getConfigNacionale() {
        return configNacionale;
    }

    public void setConfigNacionale(ConfigNacionale configNacionale) {
        this.configNacionale = configNacionale;
    }

    public ConfigPriznaky getConfigPriznaky() {
        return configPriznaky;
    }

    public void setConfigPriznaky(ConfigPriznaky configPriznaky) {
        this.configPriznaky = configPriznaky;
    }

    public int getPocetJizd() {
        return pocetJizd;
    }

    public void setPocetJizd(int pocetJizd) {
        this.pocetJizd = pocetJizd;
    }
    
}
